import sqlite3
import os

# 找到数据库文件
db_path = 'aichat.db'
if not os.path.exists(db_path):
    print(f"未找到数据库文件: {db_path}")
    exit(1)

print(f"连接到数据库: {db_path}")

# 连接到数据库
conn = sqlite3.connect(db_path)
cursor = conn.cursor()

# 检查数据库结构
print("\n检查数据库表结构...")
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
tables = cursor.fetchall()
print(f"找到的表: {[table[0] for table in tables]}")

# 检查是否有会话表（可能叫sessions或chat_sessions等）
session_tables = []
for table in tables:
    table_name = table[0]
    if 'session' in table_name.lower():
        session_tables.append(table_name)

if not session_tables:
    print("未找到会话相关的表")
else:
    print(f"找到的会话表: {session_tables}")
    
    # 对于每个会话表，显示内容并删除
    for table_name in session_tables:
        print(f"\n处理表: {table_name}")
        
        # 尝试显示表的前几行
        try:
            cursor.execute(f'SELECT * FROM {table_name} LIMIT 5')
            rows = cursor.fetchall()
            
            if rows:
                # 获取列名
                cursor.execute(f'PRAGMA table_info({table_name})')
                columns = [col[1] for col in cursor.fetchall()]
                print(f"表 {table_name} 的列: {columns}")
                print(f"前 {len(rows)} 条记录:")
                for row in rows:
                    print(row)
                
                # 统计记录数
                cursor.execute(f'SELECT COUNT(*) FROM {table_name}')
                count = cursor.fetchone()[0]
                print(f"表 {table_name} 中的记录总数: {count}")
                
                # 删除所有记录
                print(f"删除表 {table_name} 中的所有记录...")
                cursor.execute(f'DELETE FROM {table_name}')
                conn.commit()
                print(f"成功删除 {table_name} 中的所有记录")
                
                # 验证删除
                cursor.execute(f'SELECT COUNT(*) FROM {table_name}')
                remaining = cursor.fetchone()[0]
                print(f"删除后剩余记录数: {remaining}")
            else:
                print(f"表 {table_name} 为空")
        except Exception as e:
            print(f"处理表 {table_name} 时出错: {str(e)}")

# 关闭数据库连接
conn.close()
print("\n数据库连接已关闭")